

aria_role_mappings = {
     "alert": 
	 {
		"MSAA": ["ROLE_SYSTEM_ALERT"],
        "IAccessible2": [""],
        "UIA" : ["Text"],
        "ATK" : ["ATK_ROLE_ALERT"],
        "MAC" : ["AXGroup", "HXRoleDescrption='Alert'"]
     },
     "alertdialog":
	 {
		"MSAA": ["ROLE_SYSTEM_DIALOG"],
        "IAccessible2": [""],
        "UIA" : ["Window"],
        "ATK": ["ATK_ROLE_DIALOG"],
        "MAC": 	["AXGroup", "AXRoleDescription='alert dialog'"]
	 },
	 "application":
	 {
		"MSAA": ["ROLE_SYSTEM_APPLICATION"],
        "IAccessible2": [""],
        "UIA" : ["Pane"],
        "ATK": ["ATK_ROLE_EMBEDDED"],
        "MAC": 	["AXGroup", "AXRoleDescription='application'"]
	 },
	 "article":
	 {
		"MSAA": ["ROLE_SYSTEM_DOCUMENT + STATE_SYSTEM_READONLY"],
        "IAccessible2": [""],
        "UIA" : [""],
        "ATK": ["ATK_ROLE_DOCUMENT_FRAME + do not expose ATK_STATE_EDITABLE"],
        "MAC": 	["AXGroup", "AXRoleDescription='article'"]
	 },
	 "banner":
	 {
		"MSAA": [""],
        "IAccessible2": ["Object attribute role='banner'"],
        "UIA" : ["Expose as text string in AriaRole"],
        "ATK": ["Object attribute role='banner'"],
        "MAC": 	["AXGroup", "AXRoleDescription='banner'"]
	 },
	 "button":
	 {
		"MSAA": ["ROLE_SYSTEM_PUSHBUTTON. If aria-haspopup='true' it SHOULD be exposed as a ROLE_SYSTEM_BUTTONMENU"],
        "IAccessible2": ["If aria-pressed is not undefined, it SHOULD be exposed as IA2_ROLE_TOGGLE_BUTTON"],
        "UIA" : ["Button"],
        "ATK": ["ATK_ROLE_PUSH_BUTTON"],
        "MAC": 	["AXButton"]
	 },
	 "checkbox":
	 {
		"MSAA": ["ROLE_SYSTEM_CHECKBUTTON"],
        "IAccessible2": ["Object attribute checkable='true'"],
        "UIA" : ["Checkbox"],
        "ATK": ["ATK_ROLE_CHECK_BOX + object attribute checkable='true'"],
        "MAC": 	["AXCheckBox"]
	 },
	 "columnheader":
	 {
		"MSAA": ["ROLE_SYSTEM_COLUMNHEADER"],
        "IAccessible2": ["Used to help support AccessibleTable for the container grid role"],
        "UIA" : ["DataItem"],
        "ATK": ["ATK_ROLE_COLUMN_HEADER"],
        "MAC": 	["AXCell"]
	 },
	 "combobox":
	 {
		"MSAA": ["ROLE_SYSTEM_COMBOBOX + STATE_SYSTEM_HASPOPUP. If aria-expanded is not 'true', expose STATE_SYSTEM_COLLAPSED"],
        "IAccessible2": [""],
        "UIA" : ["Combobox"],
        "ATK": ["ATK_ROLE_COMBO_BOX + ATK_STATE_EXPANDABLE + object attribute haspopup='true'"],
        "MAC": 	["AXComboBox"]
	 },
	 "complementary":
	 {
		"MSAA": [""],
        "IAccessible2": ["Object attribute role='complementary'"],
        "UIA" : ["Expose as text string in AriaRole"],
        "ATK": ["Object attribute role='complementary'"],
        "MAC": 	["AXGroup", "AXRoleDescription='complementary'"]
	 },
	 "contentinfo":
	 {
		"MSAA": [""],
        "IAccessible2": ["Object attribute role='contentinfo'"],
        "UIA" : ["Expose as text string in AriaRole"],
        "ATK": ["Object attribute role='contentinfo'"],
        "MAC": 	["AXGroup", "AXRoleDescription='content'"]
	 },
	 "definition":
	 {
		"MSAA": [""],
        "IAccessible2": ["Object attribute role='definition'"],
        "UIA" : ["Expose as text string in AriaRole"],
        "ATK": ["Object attribute role='definition'"],
        "MAC": 	[""]
	 },
	 "dialog":
	 {
		"MSAA": ["ROLE_SYSTEM_DIALOG"],
        "IAccessible2": [""],
        "UIA" : ["Window"],
        "ATK": ["ATK_ROLE_DIALOG"],
        "MAC": 	["AXGroup", "AXRoleDescription='dialog'"]
	 },
	 "directory":
	 {
		"MSAA": ["ROLE_SYSTEM_LIST"],
        "IAccessible2": [""],
        "UIA" : ["List"],
        "ATK": [""],
        "MAC": 	["AXList"]
	 },
	 "document":
	 {
		"MSAA": ["ROLE_SYSTEM_DOCUMENT + STATE_SYSTEM_READONLY"],
        "IAccessible2": [""],
        "UIA" : ["Document"],
        "ATK": ["ATK_ROLE_DOCUMENT_FRAME + ATK_STATE_READONLY"],
        "MAC": 	["AXGroup", "AXRoleDescription='document'"]
	 },
	 "form":
	 {
		"MSAA": [""],
        "IAccessible2": [""],
        "UIA" : [""],
        "ATK": [""],
        "MAC": 	[""]
	 },
	 "grid":
	 {
		"MSAA": ["ROLE_SYSTEM_TABLE"],
        "IAccessible2": ["Use IAccessibleTable2 interface"],
        "UIA" : ["DataGrid"],
        "ATK": ["ATK_ROLE_TABLE"],
        "MAC": 	["AXTable"]
	 },
	 "gridcell":
	 {
		"MSAA": ["ROLE_SYSTEM_TABLE"],
        "IAccessible2": [""],
        "UIA" : ["DataItem"],
        "ATK": ["ATK_ROLE_TABLE_CELL"],
        "MAC": 	["AXCell"]
	 },
	 "group":
	 {
		"MSAA": ["ROLE_SYSTEM_GROUPING"],
        "IAccessible2": [""],
        "UIA" : ["Group"],
        "ATK": ["ATK_ROLE_TABLE_PANEL"],
        "MAC": 	["AXGroup"]
	 },
	 "heading":
	 {
		"MSAA": ["ROLE_SYSTEM_TEXT or use xml-roles"],
        "IAccessible2": ["IA2_ROLE_HEADING"],
        "UIA" : ["Text"],
        "ATK": ["ATK_ROLE_HEADING"],
        "MAC": 	["AXHeading"]
	 },
	 "img":
	 {
		"MSAA": ["ROLE_SYSTEM_GRAPHIC"],
        "IAccessible2": [""],
        "UIA" : ["Image"],
        "ATK": ["ATK_ROLE_IMAGE"],
        "MAC": 	["AXImage"]
	 },
	 "link":
	 {
		"MSAA": ["ROLE_SYSTEM_LINK", "Also, apply special rule to expose STATE_LINKED to link and all its descendants."],
        "IAccessible2": [""],
        "UIA" : ["HyperLink"],
        "ATK": ["ATK_ROLE_LINK"],
        "MAC": 	["AXLink"]
	 },
	 "list":
	 {
		"MSAA": ["ROLE_SYSTEM_LIST + STATE_SYSTEM_READONLY"],
        "IAccessible2": [""],
        "UIA" : ["List"],
        "ATK": ["ATK_ROLE_LIST + do not expose ATK_STATE_EDITABLE"],
        "MAC": 	["AXList"]
	 },
	 "listbox" :
	 {
		"MSAA": ["ROLE_SYSTEM_LIST"],
        "IAccessible2": [""],
        "UIA" : ["List"],
        "ATK": ["ATK_ROLE_LIST" "Special case: if a listbox has a parent or is owned by (via aria-owns) a combobox, it SHOULD be exposed with ATK_ROLE_MENU."],
        "MAC": 	["AXList"]
	 },
	 "listitem":
	 {
		"MSAA": ["ROLE_SYSTEM_LISTITEM + STATE_SYSTEM_READONLY"],
        "IAccessible2": [""],
        "UIA" : ["ListItem"],
        "ATK": ["ATK_ROLE_LISTITEM + do not expose ATK_STATE_EDITABLE"],
        "MAC": 	["AXGroup"]
	 },
	 "log":
	 {
		"MSAA": ["ROLE_SYSTEM_PANE"],
        "IAccessible2": ["Object attribute role='log'"],
        "UIA" : ["Pane"],
        "ATK": [""],
        "MAC": 	["AXGroup", "AXRoleDescription='log'"]
	 },
	 "main":
	 {
		"MSAA": [""],
        "IAccessible2": ["Object attribute role='main'"],
        "UIA" : ["Expose as text string in AriaRole"],
        "ATK": ["Object attribute role='main'"],
        "MAC": 	["AXGroup", "AXSubrole: AXLandmarkMain", "AXRoleDescription='main'"]
	 },
	 "marquee":
	 {
		"MSAA": ["ROLE_SYSTEM_ANIMATION or use xml-roles"],
        "IAccessible2": ["Object attribute role='marquee'"],
        "UIA" : ["Text"],
        "ATK": ["ATK_ROLE_PANEL"],
        "MAC": 	["AXGroup", "AXRoleDescription='marquee'"]
	 },
	 "math":
	 {
		"MSAA": ["ROLE_SYSTEM_EQUATION"],
        "IAccessible2": [""],
        "UIA" : [""],
        "ATK": ["ATK_ROLE_UNKNOWN"],
        "MAC": 	["AXGroup", "AXRoleDescription='math'"]
	 },
	 "menu":
	 {
		"MSAA": ["ROLE_SYSTEM_MENUPOPUP"],
        "IAccessible2": [""],
        "UIA" : ["Menu"],
        "ATK": ["ATK_ROLE_MENU" "These objects SHOULD NOT be exposed for a submenu if there is a parent menu item spawning the submenu"],
        "MAC": 	["AXMenu"]
	 },
	 "menubar":
	 {
		"MSAA": ["ROLE_SYSTEM_MENUBAR"],
        "IAccessible2": [""],
        "UIA" : ["MenuBar"],
        "ATK": ["ATK_ROLE_MENU_BAR"],
        "MAC": 	["AXMenuBar"]
	 },
	 "menuitem":
	 {
		"MSAA": ["ROLE_SYSTEM_MENUITEM"],
        "IAccessible2": [""],
        "UIA" : ["MenuItem"],
        "ATK": ["ATK_ROLE_MENU_ITEM", "If aria-checked (state) is not undefined, support object attribute checkable='true'"],
        "MAC": 	["If the option's parent has a group role, then role='menuitem' maps to NSAccessibilityMenuButtonRole", "If the option's parent has a menu role, then role='menuitem' maps to NSAccessibilityMenuItemRole", "AXMenuItem"]
	 },
	 "menuitemcheckbox":
	 {
		"MSAA": ["ROLE_SYSTEM_CHECKBUTTON or ROLE_SYSTEM_MENUITEM"],
        "IAccessible2": ["IA2_ROLE_CHECK_MENU_ITEM + object attribute checkable='true'"],
        "UIA" : ["Checkbox"],
        "ATK": ["ATK_ROLE_CHECK_MENU_ITEM + object attribute checkable='true'"],
        "MAC": 	["AXMenuItemRole"]
	 },
	 "menuitemradio":
	 {
		"MSAA": ["ROLE_SYSTEM_RADIOBUTTON or ROLE_SYSTEM_MENUITEM"],
        "IAccessible2": ["IA2_ROLE_RADIO_MENU_ITEM + object attribute checkable='true'"],
        "UIA" : ["RadioButton"],
        "ATK": ["ATK_ROLE_RADIO_MENU_ITEM + object attribute checkable='true'"],
        "MAC": 	["AXMenuItemRole"]
	 },
	 "navigation":
	 {
		"MSAA": [""],
        "IAccessible2": ["Object attribute role='navigation'"],
        "UIA" : [""],
        "ATK": [""],
        "MAC": 	["AXGroup", "AXRoleDescription='navigation'"]
	 },
	 "note":
	 {
		"MSAA": ["IA2_ROLE_NOTE"],
        "IAccessible2": [""],
        "UIA" : [""],
        "ATK": [""],
        "MAC": 	["AXGroup", "AXRoleDescription='note'"]
	 },
	 "option":
	 {
		"MSAA": ["ROLE_SYSTEM_LISTITEM"],
        "IAccessible2": ["If aria-checked is not undefined, support object attribute checkable='true'"],
        "UIA" : ["ListItem"],
        "ATK": ["ATK_ROLE_LIST_ITEM", "If aria-checked (state) is not undefined, support object attribute checkable='true'", "Special case: if an option has a parent that was exposed as an ATK_ROLE_MENU, the option SHOULD be exposed as an ATK_ROLE_MENU_ITEM"],
        "MAC": 	["If the option's parent has a menu role, then role='option' maps to NSAccessibilityMenuItemRole", "If the option's parent has a listbox role, then role='option' maps to NSAccessibilityStaticTextRole", "AXStaticText"]
	 },
	  "presentation":
	 {
		"MSAA": ["ROLE_SYSTEM_PANE", "Do not expose this object unless it is focusable or has global attributes other than aria-hidden (state)."],
        "IAccessible2": [""],
        "UIA" : ["Pane"],
        "ATK": ["Do not expose this object unless it is focusable or has global attributes other than aria-hidden (state)."],
        "MAC": 	["AXGroup", "AXRoleDescription='presentation'"]
	 },
	 "progressbar":
	 {
		"MSAA": ["ROLE_SYSTEM_PROGRESSBAR + STATE_SYSTEM_READONLY"],
        "IAccessible2": [""],
        "UIA" : ["ProgressBar"],
        "ATK": ["ATK_ROLE_PROGRESS_BAR + do not expose", "ATK_EXTENDED_STATE_EDITABLE"],
        "MAC": 	["AXProgressIndicator"]
	 },
	 "radio":
	 {
		"MSAA": ["ROLE_SYSTEM_RADIOBUTTON"],
        "IAccessible2": [""],
        "UIA" : ["RadioButton"],
        "ATK": ["ATK_ROLE_RADIO_BUTTON"],
        "MAC": 	["AXRadioButton"]
	 },
	 "radiogroup":
	 {
		"MSAA": ["ROLE_SYSTEM_GROUPING"],
        "IAccessible2": [""],
        "UIA" : ["Group"],
        "ATK": ["ATK_ROLE_PANEL"],
        "MAC": 	["AXRadioGroup"]
	 },
	 "region":
	 {
		"MSAA": ["ROLE_SYSTEM_PANE"],
        "IAccessible2": [""],
        "UIA" : ["Pane"],
        "ATK": ["ATK_ROLE_PANEL"],
        "MAC": 	["AXGroup", "AXRoleDescription='region'"]
	 },
	 "row":
	 {
		"MSAA": ["ROLE_SYSTEM_ROW unless inside a tree or treegrid, in which case ROLE_SYSTEM_OUTLINEITEM"],
        "IAccessible2": ["used to help support: IAccessibleTable2 interface for the container grid role"],
        "UIA" : ["DataItem"],
        "ATK": ["ATK_ROLE_LIST_ITEM"],
        "MAC": 	["AXRow"]
	 },
	 "rowgroup":
	 {
		"MSAA": [""],
        "IAccessible2": [""],
        "UIA" : [""],
        "ATK": [""],
        "MAC": 	[""]
	 },
	 "rowheader":
	 {
		"MSAA": ["ROLE_SYSTEM_ROWHEADER"],
        "IAccessible2": ["Used to help support IAccessibleTable2 interface for the container grid role"],
        "UIA" : ["DataItem"],
        "ATK": ["ATK_ROLE_ROW_HEADER"],
        "MAC": 	["AXCell"]
	 },
	 "scrollbar":
	 {
		"MSAA": ["ROLE_SYSTEM_SCROLLBAR"],
        "IAccessible2": [""],
        "UIA" : [""],
        "ATK": ["ATK_ROLE_SCROLLBAR"],
        "MAC": 	[""]
	 },
	 "search":
	 {
		"MSAA": [""],
        "IAccessible2": [""],
        "UIA" : [""],
        "ATK": [""],
        "MAC": 	["AXGroup", "AXRoleDescription='search'"]
	 },
	 "separator":
	 {
		"MSAA": ["ROLE_SYSTEM_SEPARATOR"],
        "IAccessible2": [""],
        "UIA" : ["Separator"],
        "ATK": ["ATK_ROLE_SEPARATOR"],
        "MAC": 	["AXSplitter"]
	 },
	 "slider":
	 {
		"MSAA": ["ROLE_SYSTEM_SLIDER"],
        "IAccessible2": [""],
        "UIA" : ["Slider"],
        "ATK": ["ATK_ROLE_SLIDER"],
        "MAC": 	["AXSlider"]
	 },
	 "spinbutton":
	 {
		"MSAA": ["ROLE_SYSTEM_SPINBUTTON"],
        "IAccessible2": [""],
        "UIA" : ["Spinner"],
        "ATK": ["ATK_ROLE_SPIN_BUTTON"],
        "MAC": 	["AXProgressIndicator"]
	 },
	 "status":
	 {
		"MSAA": ["ROLE_SYSTEM_STATUSBAR"],
        "IAccessible2": [""],
        "UIA" : ["StatusBar"],
        "ATK": ["ATK_ROLE_STATUSBAR"],
        "MAC": 	["AXGroup", "AXRoleDescription='status'"]
	 },
	 "tab":
	 {
		"MSAA": ["ROLE_SYSTEM_PAGETAB. Expose SELECTED state if focus is inside tabpanel associated with aria-labelledby."],
        "IAccessible2": [""],
        "UIA" : ["TabItem"],
        "ATK": ["ATK_ROLE_PAGE_TAB. Expose SELECTED state if focus is inside tabpanel associated with aria-labelledby."],
        "MAC": 	["AXRadioButton", "AXRoleDescription='tab'"]
	 },
	 "tablist":
	 {
		"MSAA": ["ROLE_SYSTEM_PAGETABLIST"],
        "IAccessible2": [""],
        "UIA" : ["Tab"],
        "ATK": ["ATK_ROLE_PAGE_TAB_LIST"],
        "MAC": 	["AXTabGroup"]
	 },
	 "tabpanel":
	 {
		"MSAA": ["ROLE_SYSTEM_PANE or ROLE_SYSTEM_PROPERTYPAGE"],
        "IAccessible2": [""],
        "UIA" : ["Pane"],
        "ATK": ["ATK_ROLE_SCROLL_PANE"],
        "MAC": 	["AXTabGroup"]
	 },
	 "textbox":
	 {
		"MSAA": ["ROLE_SYSTEM_TEXT"],
        "IAccessible2": ["IA2_STATE_SINGLE_LINE if aria-multiline is not 'true'"],
        "UIA" : ["Document"],
        "ATK": ["ATK_ROLE_ENTRY + ATK_STATE_SINGLE_LINE if aria-multiline is not 'true'"],
        "MAC": 	["AXTextArea"]
	 },
	 "timer":
	 {
		"MSAA": [""],
        "IAccessible2": ["Object attribute role='timer'"],
        "UIA" : [""],
        "ATK": [""],
        "MAC": 	["AXGroup", "AXRoleDescription='timer'"]
	 },
	 "toolbar":
	 {
		"MSAA": ["ROLE_SYSTEM_TOOLBAR"],
        "IAccessible2": [""],
        "UIA" : ["ToolBar"],
        "ATK": ["ATK_ROLE_TOOL_BAR"],
        "MAC": 	["AXToolbar"]
	 },
	 "tooltip":
	 {
		"MSAA": ["ROLE_SYSTEM_TOOLTIP"],
        "IAccessible2": [""],
        "UIA" : ["ToolTip"],
        "ATK": ["ATK_ROLE_TOOL_TIP"],
        "MAC": 	["AXGroup", "AXRoleDescription='tooltip'"]
	 },
	 "tree":
	 {
		"MSAA": ["ROLE_SYSTEM_OUTLINE"],
        "IAccessible2": [""],
        "UIA" : ["Tree"],
        "ATK": ["ATK_ROLE_TREE"],
        "MAC": 	["AXOutline"]
	 },
	 "treegrid":
	 {
		"MSAA": ["ROLE_SYSTEM_OUTLINE"],
        "IAccessible2": ["Use IAccessibleTable2 interface", "Object attribute role='treegrid'"],
        "UIA" : ["DataGrid"],
        "ATK": ["ATK_ROLE_TREE_TABLE"],
        "MAC": 	["AXOutline"]
	 },
	 "treeitem":
	 {
		"MSAA": ["ROLE_SYSTEM_OUTLINEITEM"],
        "IAccessible2": ["If aria-checked is not undefined, support object attribute checkable='true'"],
        "UIA" : ["TreeItem"],
        "ATK": ["ATK_ROLE_LIST_ITEM + if aria-checked is not undefined, support object attribute checkable='true'"],
        "MAC": 	["AXRow", "AXRoleDescription='outline row'"]
	 },
}

